﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace Civilisation_code.PCarte
{
    /// <summary>
    /// Classe contenant l'ensemble des cases qui la compose
    /// </summary>
     [Serializable]
    public class Carte
    {
        /// <summary>
        /// Ensemble des cases de la carte
        /// </summary>
        public Hashtable _cases { get; set; }

        /// <summary>
        /// Hauteur de la carte
        /// </summary>
        public int _hauteur { get; set; }

        /// <summary>
        /// Largeur de la carte
        /// </summary>
        public int _largeur { get; set; }

        /// <summary>
        /// Constructeur d'une instance de Carte
        /// </summary>
        /// <param name="h">Hauteur de la carte</param>
        /// <param name="l">Largeur de la carte</param>
        public Carte(int h, int l)
        {
            _cases = new Hashtable();
            _hauteur = h;
            _largeur = l;
        }

        /// <summary>
        /// Ajout d'unne case
        /// </summary>
        /// <param name="c">Case à ajouter</param>
        public void addCase(Case c){
            _cases.Add(c._x+c._y*100, c);
        }

        /// <summary>
        /// Récupération de la case pour une coordonnée donnée
        /// </summary>
        /// <param name="x">Position sur l'axe des abscisses</param>
        /// <param name="y">Position sur l'axe des ordonnées</param>
        /// <returns></returns>
        public Case getCase(int x, int y)
        {
            //Si on possède une case à cette coordonnée
            if(_cases.ContainsKey(x + y * 100))
                return (Case)_cases[x + y * 100];
            //Sinon
            return null;
        }
    }
}
